#!/bin/bash
echo "Version:1.0"
echo "Author:tim"
echo "Mail:timstrong@163.com"
echo "2022-02-19 创建 V1.0"

echo "-----------------------------------------------------------------"
echo "-----------------------------------------------------------------"
echo "-----------------------------------------------------------------"

#windows更改内容后使用该命令将脚本转换为unix格式
dos2unix yum-install.sh
date=$(date +%Y%m%d)
#提取本机ip地址
ipadd=$(ifconfig -a | grep -w inet | grep -v 127.0.0.1 | awk 'NR==1{print $2}')

#通过标准输入获取麒麟软件官方yum源，IP地址
read -p "请输入订阅的麒麟软件官方yum源地址 > " kylin_standard_yum_ip
echo "您输入的IP为 $kylin_standard_yum_ip

#备份原有yum.repo文件夹
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/kylin*.repo  /etc/yum.repos.d/bak/

#新建kylin.repo
echo "创建repo文件"
cat>/etc/yum.repos.d/kylin.repo<<EOF
[ks10.1-adv-os-x86]
name = Kylin Linux Advanced Server 10.1 - Os-x86
baseurl =
http://update.cs2c.com.cn:8080/NS/V10/V10SP1.1/os/adv/lic/base/x86_64/
gpgcheck = 0
enabled = 1
[ks10.1-adv-updates-x86]
name = Kylin Linux Advanced Server 10.1 - Updates-x86
baseurl =
http://update.cs2c.com.cn:8080/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/
gpgcheck = 0
enabled = 1
[ks10.1-Updateinfo-x86]
name = Kylin Linux Advanced Server 10.1 - Updateinfo-x86
baseurl =
http://update.cs2c.com.cn:8080/NS/UpdateInfo/V10SP1/x86_64/
gpgcheck = 0
enabled = 1

[ks10.1-adv-os-aarch64]
name = Kylin Linux Advanced Server 10.1 - Os-aarch64
baseurl =
http://update.cs2c.com.cn:8080/NS/V10/V10SP1.1/os/adv/lic/base/aarch64/
gpgcheck = 0
enabled = 1
[ks10.1-adv-updates-aarch64]
name = Kylin Linux Advanced Server 10.1 - Updates-aarch64
baseurl =
http://update.cs2c.com.cn:8080/NS/V10/V10SP1.1/os/adv/lic/updates/aarch64/
gpgcheck = 0
enabled = 1
[ks10.1-Updateinfo-aarch64]
name = Kylin Linux Advanced Server 10.1 - Updateinfo-aarch64
baseurl =
http://update.cs2c.com.cn:8080/NS/UpdateInfo/V10SP1/aarch64/
gpgcheck = 0
enabled = 1

[ks10.2-adv-os-x86]
name = Kylin Linux Advanced Server 10.2 - Os-x86
baseurl =
http://update.cs2c.com.cn:8080/NS/V10/V10SP2/os/adv/lic/base/x86_64/
gpgcheck = 0
enabled = 1
[ks10.2-adv-updates-x86]
name = Kylin Linux Advanced Server 10.2 - Updates-x86
baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP2/os/adv/lic/updates/x86_64/
gpgcheck = 0
enabled = 1 
[ks10.1-Updateinfo-x86_64]
name = Kylin Linux Advanced Server 10.1 - Updateinfo-x86
baseurl =
http://update.cs2c.com.cn:8080/NS/UpdateInfo/V10SP2/x86_64/
gpgcheck = 0
enabled = 1

[ks10.2-adv-os-aarch64]
name = Kylin Linux Advanced Server 10.2 - Os-aarch64
baseurl =
http://update.cs2c.com.cn:8080/NS/V10/V10SP2/os/adv/lic/base/aarch64/
gpgcheck = 0
enabled = 1
[ks10.2-adv-updates-aarch64]
name = Kylin Linux Advanced Server 10.2 - Updates-aarch64
baseurl =
http://update.cs2c.com.cn:8080/NS/V10/V10SP2/os/adv/lic/updates/aarch64/
gpgcheck = 0
enabled = 1
[ks10.2-Updateinfo-aarch64]
name = Kylin Linux Advanced Server 10.2 - Updateinfo-aarch64
baseurl =
http://update.cs2c.com.cn:8080/NS/UpdateInfo/V10SP2/aarch64/
gpgcheck = 0
enabled = 1
EOF

echo "创建repo文件成功"

#如果没有安装reposync工作执行
yum install -y createrepo
#检查reposync版本
reposync --version
#创建本地镜像目录
mkdir -p /data/mirror
mkdir /data/mirror/script
mkdir /data/mirror/log

#开始同步镜像源
#这个步骤根据网络速度需要一定的时间
reposync -p /data/mirror
#更新镜像源
reposync -np /data/mirror

#创建v10.1-x86-arm64元数据
createrepo -po /data/mirror/ks10.1-adv-os-x86/ /data/mirror/ks10.1-adv-os-x86/
createrepo -po /data/mirror/ks10.1-adv-updates-x86/ /data/mirror/ks10.1-adv-updates-x86/
createrepo -po /data/mirror/ks10.1-Updateinfo-x86/ /data/mirror/ks10.1-Updateinfo-x86/
createrepo -po /data/mirror/ks10.1-adv-os-aarch64/ /data/mirror/ks10.1-adv-os-aarch64/
createrepo -po /data/mirror/ks10.1-adv-updates-aarch64/ /data/mirror/ks10.1-adv-updates-aarch64/
createrepo -po /data/mirror/ks10.1-Updateinfo-aarch64/ /data/mirror/ks10.1-Updateinfo-aarch64/
#创建v10.2-x86-arm64元数据
createrepo -po /data/mirror/ks10.2-adv-os-x86/ /data/mirror/ks10.2-adv-os-x86/
createrepo -po /data/mirror/ks10.2-adv-updates-x86/ /data/mirror/ks10.2-adv-updates-x86/
createrepo -po /data/mirror/ks10.2-Updateinfo-x86/ /data/mirror/ks10.2-Updateinfo-x86/
createrepo -po /data/mirror/ks10.2-adv-os-aarch64/ /data/mirror/ks10.2-adv-os-aarch64/
createrepo -po /data/mirror/ks10.2-adv-updates-aarch64/ /data/mirror/ks10.2-adv-updates-aarch64/
createrepo -po /data/mirror/ks10.2-Updateinfo-aarch64/ /data/mirror/ks10.2-Updateinfo-aarch64/

#创建定时更新脚本
#编辑写入更新脚本
cat>>/data/mirror/script/kylinv10_yum_update.sh<<EOF
.source /etc/profile
. ~/.bash_profile
#!/bin/bash
echo 'Updating Kylin v10 Source'
DATETIME=`date +%F_%T`
exec > /data/mirror/log/v10sp1repo_$DATETIME.log
    reposync -np /data/mirror
if [ $? -eq 0 ];then
        createrepo --update /data/mirror/ks10.1-adv-os-x86_64/
        createrepo --update /data/mirror/ks10.1-adv-updates-x86/
        createrepo --update /data/mirror/ks10.1-Updateinfo-x86/
        createrepo --update /data/mirror/ks10.1-adv-os-aarch64/
        createrepo --update /data/mirror/ks10.1-adv-updates-aarch64/
        createrepo --update /data/mirror/ks10.1-Updateinfo-aarch64/
        createrepo --update /data/mirror/ks10.2-adv-os-x86/
        createrepo --update /data/mirror/ks10.2-adv-updates-x86/
        createrepo --update /data/mirror/ks10.2-Updateinfo-x86/
        createrepo --update /data/mirror/ks10.2-adv-os-aarch64/
        createrepo --update /data/mirror/ks10.2-adv-updates-aarch64/
        createrepo --update /data/mirror/ks10.2-Updateinfo-aarch64/
    echo "SUCESS: $DATETIME v10 repo update successful"
    else
    echo "ERROR: $DATETIME v10 repo update failed"
fi
EOF

#配置定时任务
#crontab -e
#写入，每周日的13:00更新源
#00 13 * * 7 /bin/bash /data/mirror/script/kylinv10_yum_update.sh>>/dev/null

配置nginx服务，通过源安装nginx，添加nginx用户
groupadd nginx
useradd -r -g nginx -s /bin/false -M nginx
yum install nginx -y

#修改nginx配置文件
mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

#配置文件内容如下
cat>/etc/nginx/nginx.conf<<EOF
worker_processes 1;
events {
    worker_connections 1024;
}
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile    on;
    keepalive_timeout 65;
    server {
        listen  80;
        server_name localhost;
        root    /data/mirror ;
        location / {
            autoindex on;
            autoindex_exact_size off; 
            autoindex_localtime on; 
            index index.html;
        }
        error_page  500 502 503 504 /50x.html;
        location = /50x.html {
            root    html;
        }
    }
}
EOF



#启动nginx，设置nginx服务开机自启动
systemctl start nginx
systemctl enable nginx

#设置结束
echo "yum源配置完成！！！！"

